classdef FeatureSelectionUsingFeatureSimilarity ...
        < BinaryClassFilter ...
        & FeatureSubsetSizeable
    %FEATURESELECTIONUSINGFEATURESIMILARITY Summary of this class goes here
    %   Detailed explanation goes here
    
    properties
    end
    
    methods
        function [ this ] = FeatureSelectionUsingFeatureSimilarity( name )
            if nargin == 0
                this.setName('fsfs');
            end
            if nargin >= 1
                this.setName(name);
            end
        end
    end
    
    methods
        function [  ] = build( this, X1, Y1 )
            nFeature = size(X1, 2);
            kFeature = nFeature - this.calcFeatureSubsetSizeOn(X1);
            [zReducedFeatureId, zFeatureWeight] = mitraFsfs(X1, nFeature, kFeature);
            [this.model.zScore, zSubRank] = sort(zFeatureWeight, 'descend');
            this.model.zRank = zReducedFeatureId(zSubRank);
        end
    end
    
end

